namespace SilverSea.LPRProcessing
{
    using System;
    using System.Drawing;

    public interface ILPRProcessing
    {
        event ErrorEventHandler ErrorEvent;

        bool Analyze(string fileName, ref string plateNumber);
        bool Analyze(string fileName, ref string[] plateNumber);
        bool Analyze(string fileName, ref string[] plateNumber, ref Bitmap[] plateImage);
        bool Analyze(string fileName, ref string plateNumber, ref Bitmap plateImage);
        bool Analyze(string fileName, Bitmap vehicleImage, ref string plateNumber, ref int recognizeTime, ref Bitmap plateImage);
        bool Analyze(string fileName, Bitmap vehicleImage, ref string plateNumber, ref int recognizeTime, ref Bitmap plateImage, ref float confidence, ref bool isBlackOnWhite);
        bool Analyze(string fileName, Bitmap vehicleImage, ref string[] plateNumber, ref int recognizeTime, ref Bitmap[] plateImage, ref float[] confidence, ref bool[] isBlackOnWhite);
        bool Analyze(string fileName, Bitmap vehicleImage, ref string plateNumber, ref int recognizeTime, ref Bitmap plateImage, string overlayText, int overlayFontSize, Color overlayColor);
        void CloseLPREngine();
        void CreateLPREngine();

        string CountryCode { get; set; }

        bool EnableMotorUnder50cc { get; set; }

        string LPREngineProductKey { get; set; }

        int MaxCharHeight { get; set; }

        int MinCharHeight { get; set; }

        PlateFeatures PlateFeature { get; set; }

        string ProvinceCode { get; set; }
    }
}

